草庐IT

iOS AVCaptureVideoDataOutput 占用太多内存

全部标签

windows - 为什么堆栈低于内存中的文本?

我正在使用Windbg来研究进程内存,不禁注意到一些人们刚刚接受的东西。打印寄存器时:eax=00000000ebx=008b6f00ecx=01010101edx=ffffffffesi=00000000edi=00465000eip=77f9d022esp=05cffc48ebp=05cffc54iopl=0nvupeingnznaponccs=001bss=0023ds=0023es=0023fs=0038gs=0000efl=00000286请注意ESP和EBP的值低于EIP,这意味着堆栈在某处低于进程的文本部分(!?)。为什么是这样?据我所知(我在Linux中也用gdb做过同

windows - 如何在 DLL 中查找特定指令的内存地址

如何找到特定指令的内存地址(用于编写漏洞利用程序)?具体来说,我正在寻找user32.dll中的callebp指令,在没有ServicePack的WindowsXP上,我可以指向其地址EIP到。我有两个ImmunityDebugger和OllyDBG安装在目标上。 最佳答案 要找到一条指令,您需要找出代码、.text、部分的开始和结束位置,然后加载DLL并进行线性搜索,直到找到该指令。这里我们有一个测试DLL,它有两条callebp指令://test.c//gcc-Wall-sharedtest.c-otest.dll#includ

windows - 如何在批处理脚本中使用 WMIC 获取内存利用率百分比?

我没有在仅使用WMIC的批处理脚本中获得内存利用率百分比的结果。我只获得总内存和空闲内存(以字节为单位)。那么如何获得以兆字节为单位的数据以及如何计算内存利用率百分比?代码:-@echooffsetlocalenabledelayedexpansionsetTimes=0for/f"skip=1"%%pin('wmiccpugetloadpercentage')do(setCpusage!Times!=%%pset/ATimes+=1)echoCPUPercentage=%Cpusage0%%%setTimes=0for/f"skip=1"%%pin('wmicComputerSyst

windows - 如何让程序使用虚拟内存?

如何让程序在Windows中使用虚拟内存?我有一个很长的perl脚本,它正在使用6GB+内存并且还在增加。我的机器只有8GB或RAM。这可能是模块内存泄漏引起的,但我现在无能为力。是否可以让它使用虚拟内存,或者这是否仅由Windows控制? 最佳答案 操作系统将根据需要自动提供虚拟内存,如果它被配置为具有交换空间。您无法通过Perl程序控制它。如果您的Perl程序最终发生内存泄漏,它将开始被交换到页面文件。当它的内存消耗导致总内存超过物理RAM加上页面文件的总和时,事情会变得缓慢,进程可能会变得无响应和/或崩溃。无论如何,页面文件的

c++ - Windows 10 是否会防止您访问其他程序正在使用的内存?

以下C++代码有效:int*p=newint;p[1000]=12;意思是我访问了一个距离psizeof(int)*1000字节的内存位置。我在想,也许Windows或任何其他程序当前正在使用内存位置&p[1000]做某事。如果我厌倦了将p[1000]设置为新值,那么可能正在使用该位置保存一些内存的另一个程序甚至Windows可能会崩溃,因为我更改了该程序的一个重要变量。由于C++不禁止这样做,我想知道至少Windows是否有某种保护措施来防止程序使用其他人当前使用的内存位置。 最佳答案 在Windows(和所有其他现代消费者操作系

c++ - 什么是 C/C++ for Windows 中基于共享内存的轻量级 IPC 机制?

我现在一直在从事一些C++项目,这些项目涉及使用窗口消息进行一些简单的IPC。在许多情况下,通过将数据放入共享内存段然后将指针传递到带有SendMessage的共享内存,一些额外的数据随窗口消息一起传递。称呼。一直重复这个很烦人,但在通过发明另一个IPC系统来解决这种沉闷的重复之前,我想问:是否有满足标准的现有框架?:用C或C++编写(我们在这里使用MSVC)尽可能少的依赖;在最好的情况下,它只是一些使用纯C++和Windows标准库的源文件,可以直接编译到应用程序/库中。适用于WindowsXP及更新版本基于窗口消息和共享内存段构建非常需要正确的错误报告(远程进程消失、远程进程不理解

c# - 如何最小化Windows中的内存使用

我用C#编写了一个helloworld程序(没有任何UI的Windows应用程序)。发布构建的可执行文件除了Thread.Sleep(50000)//50秒外什么都不做。我打开了sysinternals(像任务管理器这样的分析器)。这个可执行文件占用了7MB内存(私有(private)字节)!!任何人都可以解释发生了什么以及如何减少内存使用量。附言我还尝试使用NGEN预编译.exe,但仍然使用相同的内存。非常感谢 最佳答案 C#(和其他JIT编译/解释语言)通常最终会在后台自动为您做很多事情。虽然您编写的内容很简单,但在后台进行了大

windows - 虚拟内存 : process' one and system's one

本文http://msdn.microsoft.com/en-us/library/aa366912(v=vs.85).aspx指出win32环境(假定为32位)中的虚拟内存一半专用于用户模式进程,一半专用于内核模式进程。如果我记得分页,每个进程都应该有自己的地址空间,从0到任何地址(根据文章,最大0x7FFFFFFF)。但是内核驱动程序呢?是否每个内核驱动程序/程序都有从0x80000000到0xFFFFFFFF的内核地址空间?或者我只是弄错了? 最佳答案 我相信您的印象是驱动程序是独立的进程;对于整体内核和混合内核(NT被认为是

C++ - 直接写入内存(内核)

我之前也问过同样的问题,但是我的帖子不知为何被删除了。无论如何,我正在尝试使用C++并编写一个允许我直接访问内存并向其中写入内容的程序。我听说我需要对内核做一些事情,因为它是连接操作系统和应用程序的“桥梁”(我认为)。无论如何,我可以为内核下载一些sdk吗?我在我之前的帖子(一段时间后被删除)中说过,这样做的原因是因为我想按照我大学教授的要求尝试让Windows7崩溃。(所以请不要问我诸如“你为什么要让windows崩溃?”之类的问题……)任何帮助将不胜感激。 最佳答案 如果您对使用内核感兴趣,您可能正在寻找Windows驱动程序工

windows - 服务启动的进程无法分配内存

我有一个作为LocalSystem帐户运行的C#服务,它根据需要启动许多其他进程。这几个月一直很好。就在本周,一些子流程崩溃了。我已将远程调试器附加到它们,但它们在内存分配方面失败(C++new运算符返回0x0),这是崩溃的间接原因。有趣的是,如果我将RDP接入机器,我可以轻松地从CMD启动进程,没有任何问题。然而,当服务启动它时,不行。机器运行的是WindowsXPSP3。这不是因为提交费用大约是物理RAM的80%。服务可以使用多少进程或多少内存有一些特殊限制,包括该服务产生的进程?为什么这些进程无法分配内存的任何其他想法。编辑:我已经仔细查看了SysInternals的Procmo